/**
 * 观察者模式和中介者模式</br>
 * 单来源调用:两个对象一般是组合关系，两者有相同的生命期，它通常适用 于有单例模式和工厂方法模式的场景中。
 * 
 * 
 * ● 工厂方法模式 </br>
 * 负责产生产品对象，方便产品的修改和扩展，并且实现了产品和工厂的紧耦合，避免产 品随意被创建而无触发事件的情况发生。</br>
 * ● 桥梁模式</br>
 * 在产品和事件两个对象的关系中我们使用了桥梁模式，如此设计后，两者都可以自由地 扩展（前提是需要抽取抽象化）而不会破坏原有的封装。</br>
 * ● 观察者模式</br>
 * 观察者模式解决了事件如何通知处理者的问题，而且观察者模式还有一个优点是可以有多个观察者，也就是我们的架构是可以有多层级、多分类的处理者。
 * 想重新扩展一个新类型（新接口）的观察者？没有问题，扩展ProductEvent即可。</br>
 * ● 中介者模式</br>
 * 事件有了，处理者也有了，这些都会发生变化，并且处理者之间也有耦合关系，中介者 则可以完美地处理这些复杂的关系
 * 
 * @author kongmou
 * @date 2018年7月13日下午2:02:39
 * @since jdk 1.8
 * 
 * @version 1.0
 */
package twentyThreePattern.zMixed.observer_mediator;